
// <copyright file="ToDataReaderDataTableHelper.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   The to data reader data table helper.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Data.Helpers.Internal
{
    using System;
    using System.Collections.Generic;

    /// <summary>
    /// The to data reader data table helper.
    /// </summary>
    internal static class ToDataReaderDataTableHelper
    {
        #region Static Fields

        /// <summary>
        /// The data table supported data types.
        /// </summary>
        internal static readonly HashSet<Type> DataTableSupportedDataTypes;

        #endregion Static Fields

        #region Constructors and Finalizers

        /// <summary>
        /// Initializes static members of the <see cref="ToDataReaderDataTableHelper"/> class.
        /// </summary>
        static ToDataReaderDataTableHelper()
        {
            DataTableSupportedDataTypes = new HashSet<Type>();
            DataTableSupportedDataTypes.Add(typeof(bool));
            DataTableSupportedDataTypes.Add(typeof(byte));
            DataTableSupportedDataTypes.Add(typeof(char));
            DataTableSupportedDataTypes.Add(typeof(DateTime));
            DataTableSupportedDataTypes.Add(typeof(decimal));
            DataTableSupportedDataTypes.Add(typeof(double));
            DataTableSupportedDataTypes.Add(typeof(Guid));
            DataTableSupportedDataTypes.Add(typeof(short));
            DataTableSupportedDataTypes.Add(typeof(int));
            DataTableSupportedDataTypes.Add(typeof(long));
            DataTableSupportedDataTypes.Add(typeof(sbyte));
            DataTableSupportedDataTypes.Add(typeof(float));
            DataTableSupportedDataTypes.Add(typeof(string));
            DataTableSupportedDataTypes.Add(typeof(TimeSpan));
            DataTableSupportedDataTypes.Add(typeof(ushort));
            DataTableSupportedDataTypes.Add(typeof(uint));
            DataTableSupportedDataTypes.Add(typeof(ulong));
            DataTableSupportedDataTypes.Add(typeof(byte[]));

            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Boolean>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Byte>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Char>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<DateTime>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Decimal>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Double>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Guid>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Int16>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Int32>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Int64>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<SByte>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<Single>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<TimeSpan>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<UInt16>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<UInt32>));
            // DataTableSupportedDataTypes.Add(typeof(IsNullable<UInt64>));
        }

        #endregion Constructors and Finalizers
    }
}